/*
 * @Author: yq233 974464175@qq.com
 * @Date: 2023-11-27 15:13:59
 * @LastEditors: yq233 974464175@qq.com
 * @LastEditTime: 2023-11-27 17:04:25
 * @FilePath: \Flutter&Dart\demo1.dart
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

void main() {
/**
 * 创建list的方式
 * var list = new List(); 此方法只有在dart2.x一下的版本可使用
 * 1.var list = List.filled(length, fall); 
 * 2.创建一个固定长度的集合,length 为固定长度，fall为内容
 * 3.不可修改长度
 * 
 **/
  print("******************");
  var str = List<String>.filled(2, "");

  str[0] = "3";
  str[1] = "2";
  print("list表示方式：");
  print(str);

// 正常定义的方法可以改变list的长度
  List str1 = ["4", "3"];
  print(str1.length);
  str1.length = 0;
  print(str1.length);
  print("******************");

/**
 * maps的表示方法
 * 
 */

//表达方式一
  var map = {"name": "张三", "age": 32};
  print("map表示方式：");
  print(map);
  print(map["name"]);

//表达方式二
  var map1 = new Map();
  map1["name"] = "李四";
  map1["age"] = 29;
  print(map1);

  print("***************");

  /**
   * is 判断数据类型
   */
  print("is 判断数据类型:");
  var is1 = 'str';
  if (is1 is String) {
    print("是Stirng");
  } else if (is1 is int) {
    print("是int");
  } else {
    print("是其他类型");
  }

  print("***************");

  /**
   * 算术运算符
   * 
   */
  print("算术运算符（取余和取整）:");
  int num1 = 13;
  int num2 = 5;
  print(num1 % num2);
  print(num1 ~/ num2);

  print("***************");

  /**
   * dart类型的转换
   * 1.number与string类型的转换 tostring()
   * 2.string与number类型的转换 int.parse()
   * 3.其他类型转换成booleans类型
   *    isEmpty(字符串是否为控)，isNaN(数字错误)
   */
  print("dart类型的转换:");

//1.string与number类型的转换 int.parse()
  var type_str = '12';
  try {
    var type_int = double.parse(type_str);
    print(type_int is double);
  } catch (err) {
    print(0);
  }
//2.number与string类型的转换 tostring()
  var type_int = 12;
  try {
    var type_str = type_int.toString();
    print(type_str is String);
  } catch (err) {
    print(err);
  }
}
